import kioscodeal.*

class BootStrap {
	
	def geocodingService

	def init = { servletContext ->
		
		new File('cargaMarcas.txt').splitEachLine("\t") {campos->
			def existe = false;
			for (def m : Marca.all){
				if (m.titulo == campos[0]){
					existe = true;
					break;
				}
			}
			
			if (!existe){
				def marca = new Marca (
					titulo: campos[0],
					descripcion: campos[1]
				).save(failOnError:true)
			}			
		}
		
		new File('cargaFamilias.txt').splitEachLine("\t") {campos->
			def existe = false;
			for (def f : Familia.all){
				if (f.titulo == campos[0]){
					existe = true;
					break;
				}
			}
			
			if (!existe){
				def familia = new Familia (
					titulo: campos[0],
					descripcion: campos[1]
				).save(failOnError:true)
			}			
		}
		
		def comercio = new Comercio (
			calle: 'Avenida Leandro N. Alem',
			numeroDireccion: 294,
			localidad: 'Ciudad Autónoma de Buenos Aires',
			codigoPostal: 1060,
			minimoCompraGeneral: 30
		)
		
		def creado = false
		for (def com : Comercio.all){
			if (com.calle == comercio.calle){
				creado = true;
				break;
			}
		}
		if (!creado){
			def coordenada = new Coordenada()
			coordenada.save()
			comercio.coord = coordenada
			def latlng = geocodingService.findLatLngByAddress("${comercio?.calle} ${comercio?.numeroDireccion}, ${comercio?.localidad}")
			if(latlng){
				comercio.coord.lat = latlng.lat
				comercio.coord.lng = latlng.lng
			}
			comercio.save()
		}

		
		def calendarAdm = new GregorianCalendar(1988,5,10,15,7,23)
		
		def admin = new User(login:"admin",
			password:"admin",
			nombre:"Administrator",
			role:Role.ADMINISTRATOR,
			apellido:"Administrator",
			fechaNacimiento : calendarAdm.getTime(),   //2000-12-06 00:00:00
			calle : "25 de Mayo",
			numeroDireccion : 255,
			piso : 4,
			numeroDepartamento : 18,
			codigoPostal : 1292,
			localidad: comercio.localidad,
			dni : 33811590,
			telefonoFijo : 5555555,
			telefonoMovil : 1555555555,
			mail : "admin@gmail.com",
			edad : 26,
			minimoCompra : 5,
			estado: EstadoCliente.ACTIVO
			)
			admin.save()
			
			def calendarUser = new GregorianCalendar(1988,5,6,15,7,23)
			
			def user = new User(login:"esantamarta",
				password:"admin",
				nombre:"Ezequiel",
				role:Role.USER,
				apellido:"Santa Marta",
				fechaNacimiento : calendarUser.getTime(), //2000-12-06 00:00:00
				calle : "Belgrano",
				numeroDireccion : 687,
				piso : 4,
				numeroDepartamento : 18,
				codigoPostal : 1292,
				localidad: comercio.localidad,
				dni : 33811591,
				telefonoFijo : 5555555,
				telefonoMovil : 1555555555,
				mail : "ezequielsantam@gmail.com",
				edad : 26,
				minimoCompra : 10,
				estado: EstadoCliente.ACTIVO
				)
				user.save()
			
			
	}
	
	
	def destroy = {
	}
}
